package com.hzw.saas.api.product;

import com.hzw.saas.api.product.dto.PaymentOfflineDto;

/**
 * 线下支付服务类
 *
 * @author zzl
 * @since 01/29/2021
 */
public interface IPaymentOfflineService {

    /**
     * 获取订单支付信息
     * @param payId 支付ID
     * @return 支付信息
     */
    PaymentOfflineDto get(String payId);

    /**
     * 根据订单号获取支付信息
     * @param orderId 订单号
     * @return 支付信息列表
     */
    PaymentOfflineDto getByOrder(String orderId);

    /**
     * 增加订单支付信息
     * @param paymentOfflineDto 支付信息
     * @return 支付信息，包含生成的支付ID
     */
    PaymentOfflineDto add(PaymentOfflineDto paymentOfflineDto);

    /**
     * 更新订单支付信息
     * @param paymentOfflineDto 支付信息，无需更新字段请保留null
     * @return 更新结果，成功true/失败false
     */
    boolean update(PaymentOfflineDto paymentOfflineDto);

    /**
     * 删除订单支付信息
     * @param payId 支付ID
     * @return 被删除的支付信息
     */
    PaymentOfflineDto delete(String payId);


    /**
     * 根据订单号删除支付信息
     * @param orderId 订单号
     * @return 被删除的支付信息列表
     */
    PaymentOfflineDto deleteByOrder(String orderId);

}
